// JavaScript Document
function validarEmail(valor) {
  		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){
   			return (true);
  			}
		else {
   			return (false);
  			}
 		}

//funcion que valida si la variable recibida es alfanumerica
	function IsAlphaNum( str ) {
		// Return immediately if an invalid value was passed in
		if (str+"" == "undefined" || str+"" == "null" || str+"" == "")	
			return (false);
		var validacion = true;
		// convert to a string for performing string comparisons.
   		str += "";	
		// Loop through length of string and test for any alpha numeric 
		// characters
   		for (i = 0; i < str.length; i++)
   			{
			// Alphanumeric must be between "0"-"9", "A"-"Z", or "a"-"z"
      		if (!(((str.charAt(i) >= "0") && (str.charAt(i) <= "9")) || ((str.charAt(i) >= "a") && (str.charAt(i) <= "z")) || ((str.charAt(i) >= "A") && (str.charAt(i) <= "Z"))))
				{
				validacion = false;
				break;
				}	
   			} // END for   
   		return (validacion);
		}

//funcion que valida el formulario de login
function validar_form(f) {
	//valido que el nombre y el apellido esten completos, o bien la razon social
	var mensaje = "Han ocurrido los siguientes errores en la validación:\n";
	var validacion = true;
	//valido usuario
	if (f.cd_usuario.value.length==0) {
		mensaje = mensaje + "> El campo usuario es obligatorio\n";
		validacion = false;
		}
	else {
		if (!validarEmail(f.cd_usuario.value)) {
			mensaje = mensaje + "> La direccion de correo ingresada (usuario) no es valida\n";
			validacion = false;
			}
		}
	if (f.cd_psw.value.length<8) {
		mensaje = mensaje + "> Debe ingresar su password de 8 caracteres y su confirmacion\n";
		validacion = false;
		}
	//valida caracteres alfanumericos
	if (!IsAlphaNum(f.cd_psw.value)) {
		mensaje = mensaje + "> Su password debe estar compuesta solo por caracteres alfanumericos\n";
		validacion = false;
		}
	//imprimir mensaje al usuario
	if (!validacion) {
		alert(mensaje);
		}
	return(validacion);
	}

	//funcion que valida si una cadena determinada es vacia
function vacio(cadena)  
	{
	var blanco = " \n\t" + String.fromCharCode(13);//blancos
    var i;//indice en cadena  
    var es_vacio;//cadena es vacio o no  
    for(i = 0, es_vacio = true; (i < cadena.length) && es_vacio; i++)
      es_vacio = blanco.indexOf(cadena.charAt(i)) != - 1;
	return(es_vacio);  
	}  
	
//validacion formulario abm_motivogrupo
function JS_abm_motivogrupo(form)  
	{  
	if(vacio(form.tx_motivogrupo.value))  
		alert("Debe ingresar el nombre del Grupo de Motivos que desea dar de alta");
    else  
       //el campo no esta vacio, devuelvo true para hacer el submit del formulario
	   return(true);
    return(false);  
	}
	
//validacion formulario abm_doctipofunction
function JS_abm_doctipo(form) {
	if(vacio(form.tx_documentotipo.value)) {
		alert("Debe ingresar la descripción del documento que desea dar de alta");
		return(false);
		}
	else if (vacio(form.tx_documentotipoabrev.value)) {
		alert("Debe ingresar la descripción abreviada del documento que desea dar de alta");
		return(false);
		}
	return(true);
	}
//funcion para mostrar fecha actual con javascript (entre otras)
function JS_fecha_actual() {
	var fecha=new Date();
	fecha.setDate(fecha.getDate()+10);
	var diames=fecha.getDate();
	var diasemana=fecha.getDay();
	var mes=fecha.getMonth() +1 ;
	var ano=fecha.getFullYear();

	/*
	var textosemana = new Array (7); 
	textosemana[0]="Domingo";
	textosemana[1]="Lunes";
	textosemana[2]="Martes";
	textosemana[3]="Miércoles";
	textosemana[4]="Jueves";
	textosemana[5]="Viernes";
	textosemana[6]="Sábado";

	var textomes = new Array (12);
	textomes[1]="Enero";
	textomes[2]="Febrero";
	textomes[3]="Marzo";
	textomes[4]="Abril";
	textomes[5]="Mayo";
	textomes[6]="Junio";
	textomes[7]="Julio";
	textomes[7]="Agosto";
	textomes[9]="Septiembre";
	textomes[10]="Octubre";
	textomes[11]="Noviembre";
	textomes[12]="Diciembre";
	*/
	var fecha_actual = diames + "/" + mes + "/" + ano;
	//form.fc_vencimiento_plazo.value = fecha_actual;
	alert("prueba");
	return(true);
	}	
	
	//validacion formulario abm_motivoresolucion
	
function JS_abm_motivoresolucion(form) {  	
   if(vacio(form.tx_motivoresolucion.value)) { 		
      alert("Debe ingresar el motivo de la resolución que desea dar de alta");		
      return(false);     
   } else	   
      return(true);	
	  }

//funcion utilizada por el formulario de alta de reclamo, para dirigir el formulario a la busqueda, y no a la validacion
function JS_alta_reclamo_buscar_cte(form)
	{
    form.action ="reclamos_buscar_cliente.php";
	form.submit();
	}

function JS_misreclamos_submit1(anio,idrec,idconf){
    document.reclamo.anio.value=anio;
    document.reclamo.idrec.value=idrec;
    document.reclamo.idconf.value=idconf;
    document.reclamo.submit();
	}

function JS_confirmar(pregunta) {
	return (confirm("¿Está seguro que desea" + pregunta + "?"));
	}
/*
function JS_actualiza_movimientos(form,nu_anio,cd_reclamo) {
	form.nu_anio.value = nu_anio;
	form.cd_reclamo.value = cd_reclamo;
	if JS_confirmar("seleccionar este reclamo")
		{
		form.submit();
		};
	}
*/
function JS_reclamos_alta_validar(f) {
	var mensaje = "Han ocurrido los siguientes errores en la validación:\n";
	var validacion = true;
	var cantidad_digitos = f.cd_linea_i.value.length + f.cd_linea_u.value.length + f.cd_linea_l.value.length;
	//valido nombre, apellido y razon social
	if ( ( (f.tx_nombre.value.length==0) && (f.tx_apellido.value.length==0) ) || ( (f.tx_nombre.value.length==0) && (f.cd_tipo_cliente.value == "empresa") ) ) { 
		mensaje = mensaje + "> Debe seleccionar el cliente\n";
       	validacion = false;
		}
	if ( (f.cd_producto_tipo.value != 0) && (cantidad_digitos != 10) ) {
		//eligio un tipo de producto, por lo cual debe ingresar una linea de telefono de 10 digitos
		mensaje = mensaje + "> La longitud de la línea ingresada no es correcta (10 dígitos)\n";
		validacion = false;
		}
	if  ( (cantidad_digitos == 10 ) && (f.cd_producto_tipo.value == 0) ) {
		// no eligio el tipo de producto
		mensaje = mensaje + "> Debe seleccionar el tipo de producto correspondiente a la línea ingresada\n";
		validacion = false;
		}
	if (f.cd_empresa_prestadora.value == 0) {
		mensaje = mensaje + "> Debe seleccionar la Empresa Prestadora a la cual se derivará el reclamo del cliente\n";
		validadcion = false;
		}
	if (f.tx_motivogrupo.value == 0) {
		mensaje = mensaje + "> Debe seleccionar el grupo de motivo del reclamo del cliente\n";
		validacion = false;
		}
	if (f.tx_motivo.value == 0) {
		mensaje = mensaje + "> Debe seleccionar el motivo del reclamo del cliente\n";
		validacion = false;
		}
	if (f.tx_ingreso.value.length < 25 || f.tx_ingreso.value.length > 1000) {
		mensaje = mensaje + "> Las observaciones de ingreso del reclamo deben tener una longitud mínima de 25 caracteres y máxima de 1000\n";
		validacion = false;
		}
	//validacion adjunto 1
	if ( ( (f.tx_filename1.value.length > 0) && (f.cd_tipoadjunto1.value == 0) ) || ( (f.tx_filename1.value.length == 0) && (f.cd_tipoadjunto1.value != 0) ) ) {
		mensaje = mensaje + "> Debe seleccionar el archivo a adjuntar y el tipo de adjunto (#1)\n";
		validacion = false;
		}
	//validacion adjunto 2
	if ( ((f.tx_filename2.value.length > 0) && (f.cd_tipoadjunto2.value == 0)) || ((f.tx_filename2.value.length == 0) && (f.cd_tipoadjunto2.value != 0))) {
		mensaje = mensaje + "> Debe seleccionar el archivo a adjuntar y el tipo de adjunto (#2)\n";
		validacion = false;
		}
	//validacion adjunto 3
	if ( ((f.tx_filename3.value.length > 0) && (f.cd_tipoadjunto3.value == 0)) || ((f.tx_filename3.value.length == 0) && (f.cd_tipoadjunto3.value != 0))) {
		mensaje = mensaje + "> Debe seleccionar el archivo a adjuntar y el tipo de adjunto (#3)\n";
		validacion = false;
		}
	//imprimir mensaje al usuario
	if (!validacion) {
		alert(mensaje);
		}
	return(validacion);
	}
	
function JS_actualizar_validar_rta(f) {
	var validacion = true;
	var mensaje = "Han ocurrido los siguientes errores en la validación:\n";
	if (f.tx_observaciones.value.length < 25 || f.tx_observaciones.value.length > 1000) {
		mensaje = mensaje + "> Las observaciones de respuesta de la instancia del reclamo deben tener una longitud mínima de 25 caracteres y máxima de 1000\n";
		validacion = false;
		}
	if (f.cd_motivoresolucion.value == 0) {
		mensaje = mensaje + "> Debe seleccionar el motivo de cierre / resolución de la instancia del reclamo del cliente\n";
		validacion = false;
		}
	//validacion adjunto 1
	if ( ( (f.tx_filename1.value.length > 0) && (f.cd_tipoadjunto1.value == 0) ) || ( (f.tx_filename1.value.length == 0) && (f.cd_tipoadjunto1.value != 0) ) ) {
		mensaje = mensaje + "> Debe seleccionar el archivo a adjuntar y el tipo de adjunto (#1)\n";
		validacion = false;
		}
	//validacion adjunto 2
	if ( ((f.tx_filename2.value.length > 0) && (f.cd_tipoadjunto2.value == 0)) || ((f.tx_filename2.value.length == 0) && (f.cd_tipoadjunto2.value != 0))) {
		mensaje = mensaje + "> Debe seleccionar el archivo a adjuntar y el tipo de adjunto (#2)\n";
		validacion = false;
		}
	//imprimir mensaje al usuario
	if (!validacion) {
		alert(mensaje);
		}
	return(validacion);
	}
	
function JS_actualizar_validar_sup(f) {
	var validacion = true;
	var mensaje = "Han ocurrido los siguientes errores en la validación:\n";
	if (f.tx_observaciones.value.length < 25 || f.tx_observaciones.value.length > 1000) {
		mensaje = mensaje + "> Las observaciones de supervision de la instancia del reclamo deben tener una longitud mínima de 25 caracteres y máxima de 1000\n";
		validacion = false;
		}
//imprimir mensaje al usuario
	if (!validacion) {
		alert(mensaje);
		}
	return(validacion);
	}
	
function JS_actualizar_dictaminar(f) {
	var validacion = true;
	var mensaje = "Han ocurrido los siguientes errores en la validación:\n";
	if (f.tx_observaciones.value.length < 25 || f.tx_observaciones.value.length > 1000) {
		mensaje = mensaje + "> Las observaciones sobre el dictamen del reclamo deben tener una longitud mínima de 25 caracteres y máxima de 1000\n";
		validacion = false;
		}
//imprimir mensaje al usuario
	if (!validacion) {
		alert(mensaje);
		}
	return(validacion);
	}
	
	
	
//funcion para validar números
 
function EsUnNumero(numero) { 

   if(/^[0-9]+$/.test(numero))
      return true;
   else
      return false;
} 


//validacion formulario abm_empresa_prestadora

function JS_abm_emp_prest(form) {
    //valido la razón social 
	if(vacio(form.tx_razonsocial.value)) {

		alert("Debe ingresar la razón social de la empresa prestadora");

		return(false);

		}
    //valido que el campo fecha de inicio de actividades este informado
	else if (vacio(form.fc_inicioactividades.value)) {

		alert("Debe ingresar la fecha de inicio de actividades");

		return(false);

		}
	//valido que el cuit sea numérico
	else if (!EsUnNumero(form.nu_documento.value)) {

		alert("El número de documento ingresado es inválido");

		return(false);
	    }
    //valido que el cuit este informado
	else if (form.nu_documento.value < 1) {

		alert("Debe ingresar el número de CUIT de la empresa prestadora");

		return(false);

		}
	//valido que el campo calle este informado
	else if (vacio(form.tx_calle.value)) {

		alert("Debe ingresar la calle de la empresa prestadora");

		return(false);

		}
	//valido que el campo número sea numérico
	else if (!EsUnNumero(form.tx_numero.value)) {

		alert("El número ingresado es inválido");

		return(false);

		}
	//valido que el campo número este informado
	else if (vacio(form.tx_cpostal.value)) {

		alert("Debe ingresar el código postal de la empresa prestadora");

		return(false);

		}
	//valido que se haya seleccionado una provincia
	else if (form.cd_provincia.value == "-") {

		alert("Debe ingresar la provincia donde se encuentra ubicada la empresa prestadora");

		return(false);

		}
	//valido que se haya seleccionado un partido
	else if (form.tx_partido.value == "-") {

		alert("Debe ingresar el partido donde se encuentra ubicada la empresa prestadora");

		return(false);

		}
	//valido que se haya seleccionado una localidad
	else if (form.tx_localidad.value == "--") {

		alert("Debe ingresar la localidad donde se encuentra ubicada la empresa prestadora");

		return(false);

		}

	return(true);

	}

//funcion para encriptar
function reset_pwd_onsubmit() {
	var nueva= document.doc.tx_psw_nueva.value;
	var conf= document.doc.tx_psw_conf.value;

	if(nueva!=conf){
		alert('No coinciden la contrañesa nueva y la confirmación');
		return false; // difieren contraseñas nueva y conf.nueva
	}
	else if (nueva.length < 8) {
	    alert('La contraseña debe tener como minimo 8 caracteres');
		return false; // Se valida la longitud de la contraseña
	}
	else if (!IsAlphaNum(nueva)) {
		alert('Su password debe estar compuesta solo por caracteres alfanumericos');
		validacion = false;
		} 
	
	// hasheamos
	//var sha1_actual= hex_sha1(document.doc.tx_psw_actual.value);
	//var sha1_nueva= hex_sha1($nueva);
	var sha1_actual= document.doc.tx_psw_actual.value;
	var sha1_nueva= nueva;
	
	// cargamos los valores de los hidden
	document.doc.psw_actual_sha1.value= sha1_actual;
	document.doc.psw_nueva_sha1.value= sha1_nueva;
	return (true);
}

	
//Validación formulario abm_prodgrupo

function JS_abm_prodgrupo(form) {
	if (vacio(form.tx_productotipo.value)) {
		alert('Debe ingresar la descripción del tipo de producto');
		return(false);
	}
}
		

//Validación formulario abm_submotivos

function JS_abm_submotivos(form) {
	if (vacio(form.tx_motivogrupo.value)) {
		alert('Debe ingresar la descripción del grupo');
		return(false);
	}
}

//Validación del formulario resetpwd

function JS_resetpwd(form) {
	if (!EsUnNumero(form.nro_doc.value) && (!vacio(form.nro_doc.value))) {
		alert('Número de documento inválido');
		return(false);
	}
	else if (!vacio(form.nro_doc.value) && (!vacio(form.apellido.value) || !vacio(form.nombre.value) || !vacio(form.razon_social.value))) {
		alert('Los criterios de busqueda son:\r 1) Todos los campos en blanco.\r 2) Número de documento.\r 3) Nombre.\r 4) Apellido.\r 5) Nombre y Apellido.\r 6) Razón Social.');
		return(false);
	}
 	else if ((!vacio(form.nombre.value) || !vacio(form.apellido.value)) && !vacio(form.nro_doc.value)) {
		alert('Los criterios de busqueda son:\r 1) Todos los campos en blanco.\r 2) Número de documento.\r 3) Nombre.\r 4) Apellido.\r 5) Nombre y Apellido.\r 6) Razón Social.');
		return(false);
	} 
	else if ((!vacio(form.nombre.value) || !vacio(form.apellido.value)) && !vacio(form.razon_social.value)) {
		alert('Los criterios de busqueda son:\r 1) Todos los campos en blanco.\r 2) Número de documento.\r 3) Nombre.\r 4) Apellido.\r 5) Nombre y Apellido.\r 6) Razón Social.');
		return(false);
	}
	
}

function JS_actualizar_iniciar_instancia(f) {
	var validacion = true;
	var mensaje = "Han ocurrido los siguientes errores en la validación:\n";
	if (f.tx_observaciones.value.length < 25 || f.tx_observaciones.value.length > 1000) {
		mensaje = mensaje + "> Las observaciones sobre el dictamen del reclamo deben tener una longitud mínima de 25 caracteres y máxima de 1000\n";
		validacion = false;
		}
	if (f.tx_motivo.value == 0) {
		mensaje = mensaje + "> Debe seleccionar el motivo de la nueva instancia del reclamo del cliente\n";
		validacion = false;
		}
	//imprimir mensaje al usuario
	if (!validacion) {
		alert(mensaje);
		}
	return(validacion);
	}
	
function JS_bandeja_general_asignar(f,p_nu_anio,p_cd_reclamo) {
	f.cd_reclamo.value = p_cd_reclamo;
	f.nu_anio.value = p_nu_anio;
	f.submit();
	}